Envie : Chapitre 7

Echanges sur les figures

Auteur·rice
Affiliation

Arno Muller

Ined

Date de publication

23/08/2024

Figure 7.1

Tables des situations conjugales

  • largeur : 120mm
  • hauteur : 110mm

Tables

Figure 7.2 : à supprimer

Table célibat dans l’année

  • largeur : 122mm
  • hauteur : 26mm

Figure 7.3

Attirance selon le genre et la relation

  • largeur : 139mm
  • hauteur : 69mm

Données et codes

Code
dt <- read.xlsx("Data/Chapitre_7_V2_tableaux_AM.xlsx", 
                 sheet = 4,
                 cols = 1:6,
                 rows = 17:25) %>% 
  fill(X1) %>% 
  rename(Relation = X1,
         Genre = X2) %>% 
  pivot_longer(3:6, names_to = "Attirance", values_to = "Valeurs") %>%
  mutate(Attirance = fct_recode(Attirance,
                           "Pas du tout attiré·e" = "Pas.du.tout.attiré·e",
                           "Pas vraiment attiré·e" = "Pas.vraiment.attiré·e",
                           "Plutôt attiré·e" = "Plutôt.attiré·e",
                           "Très attiré·e" = "Très.attiré·e"
  )) %>% 
  select(Relation, Genre, everything()) %>% 
  mutate(Genre = factor(Genre, levels = c("Hommes", "Femmes")),
         Relation = factor(Relation,
                           levels = rev(c("Relations envisagées",
                                          "Relations suivies",
                                          "Histoires d'un soir",
                                          "Couples")))) %>%
  mutate(value0 = NA,
         value1 = paste0(round(Valeurs,0),"%"),
         value2 = ifelse(Attirance == "Très attiré·e", value1, NA),
         value3 = ifelse(Attirance == "Plutôt attiré·e", value1, NA))

Télécharger les données pour la figure :

Code
rouge = "#ce1126"
width = 7.3 # = 139mm
height = 3 # = 48mm
size_text = 10

titre3 <- ggplot() +
  geom_blank() +
  ylim(0,10) +
  xlim(-1,1) +
  geom_text(aes(x = 0, y = 9.25 , label = "Couples"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  geom_text(aes(x = 0, y = 7, label = "Histoires\nd'un soir"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) + 
  geom_text(aes(x = 0, y = 4.8, label = "Relations\nsuivies"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  geom_text(aes(x = 0, y = 2.5, label = "Relations\ndésirées"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) + 
  theme_void() +
  theme(panel.background = element_rect(fill = rouge,
                                        colour = rouge,
                                        size = 0.5, linetype = "solid"))
titre3



p = ggplot(dt, aes(x = Genre, y = Valeurs)) +
  geom_bar_pattern(
    aes(fill = Attirance,
        pattern_fill = Attirance,
        pattern_angle = Attirance
    ),
    stat = "identity", 
    colour = "black", 
    pattern_size = NA,
    #pattern_spacing = 0.03,
    pattern_density = 0.25, 
    width = 0.5,
    linewidth = 0.25
  ) +
  
  
  geom_text(
    aes(label = value2,
        color = Attirance),
    size = 3,
    position = position_stack(vjust = 0.5), 
    family = "Montserrat"
  ) +
  
  
  facet_grid(Relation ~ ., scales = "free_y", space = "free_y") +
  coord_flip() +
  
  scale_color_manual(values = c("white","black","black","white")) +
  
  scale_pattern_angle_manual(values =c(0,45,135,0),
                             guide = guide_legend(reverse = TRUE))  +
  scale_fill_manual(values = rev(c(rouge,rouge,"black","black")),
                    guide = guide_legend(reverse = TRUE))  +
  scale_pattern_fill_manual(values = rev(c(rouge,"white","white","black")),
                            guide = guide_legend(reverse = TRUE))+
  
  scale_y_continuous(limits = c(0,100), breaks = seq(0,100,20),
                     labels = paste0(seq(0,100,20),"%")) + 
  
  theme_minimal() +
  theme(
    strip.text.y = element_blank(),
    axis.ticks.y = element_blank(),
    #axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    panel.grid.minor.y=element_blank(),
    panel.grid.major.y=element_blank(),
    panel.grid.minor.x=element_blank(),
    panel.grid.major.x=element_line(color = "lightgrey",linewidth = 0.5,linetype = "dotted"),
    legend.position = "bottom",
    axis.text = element_text(size = 10, family = "Montserrat"),
    legend.text = element_text(size = 10, family = "Montserrat"),
    legend.title=element_blank(),
    legend.key.size = unit(0.5, 'cm')
  ) +
  labs(x = "",y = "")  + 
  guides(
    pattern_angle = "none",
    color = "none",
    fill = "none",
    pattern_fill  = guide_legend(
      reverse = TRUE,
      nrow = 2, 
      override.aes = list(
        pattern_spacing = 0.01,
        pattern_density = 0.3,
        fill = c(rouge,rouge,"black","black"),
        pattern_fill = c(rouge,"white","white","black"),
        pattern_angle = rev(c(0,45,135,0))
      ))) 


p



p_rela3 <- grid.arrange(titre3,p,ncol = 2, 
                        widths = c(unit(15, "npc"), unit(85, "npc")))


# VF
svg("images/Fig7_3/p7_3_save.svg", width = width, height = 4)
p_rela3 <- grid.arrange(titre3,p,ncol = 2, 
                        widths = c(unit(15, "npc"), unit(85, "npc")))
dev.off()

Graphiques

Figure 7.4

Part pratiques sexuelles selon l’age et la relation

Petit format : - largeur : 120mm
- hauteur : 48mm

Données et codes

Code
dt <- read.xlsx("Data/Chapitre_7_V2_tableaux_AM.xlsx", 
                sheet = 5,
                cols = 1:3,
                rows = 4:13) %>% 
  fill(X1) %>% 
  rename(name = X1,
         value = `%`,
         X1 = X2) %>% 
  arrange(value) %>% 
  mutate(name = ifelse(name == "Histoires d'un soir", "Histoires\nd'un soir", name),
         name = ifelse(name == "Relations suivies", "Relations\nsuivies", name)) %>% 
  mutate(X1 = factor(X1, levels = rev(unique(X1))))

Télécharger les données pour la figure :

Code
rouge = "#ce1126"
#width = 7.3 # = 139mm
width = 6.3 # = 119mm

height = 3 # = 48mm
size_text = 10


titre3 <- ggplot() +
  geom_blank() +
  ylim(0,10) +
  xlim(-1,1) +
  geom_text(aes(x = 0., y = 8.6 , label = "Couples"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  geom_text(aes(x = 0, y = 5, label = "Histoires\nd'un soir"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) + 
  geom_text(aes(x = 0, y = 1.75, label = "Relations\nsuivies"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  theme_void() +
  theme(panel.background = element_rect(fill = rouge,
                                        colour = rouge,
                                        linewidth = 0.5, linetype = "solid"))
titre3



p = ggplot(dt,aes(x=X1, y=value)) +

  geom_segment(
    aes(x=X1, xend=X1, y=0, yend=value), 
    color=ifelse(dt$X1 == "18-21 ans", "#ce1126", "grey"), 
    linewidth=ifelse(dt$X1 == "18-21 ans", 0.75, 0.75)
  ) +
  geom_point(
    color=ifelse(dt$X1 == "18-21 ans", "#ce1126", "grey"), 
    size=ifelse(dt$X1 == "18-21 ans", 4, 4)
  ) +
  
  scale_y_continuous(limits = c(0,100), breaks = seq(0,100,20),
                     labels = paste0(seq(0,100,20),"%")) + 
  coord_flip() +
  facet_grid(name ~ ., scales = "free_y", space = "free_y") +
  theme_minimal() +
  theme(
    legend.position="bottom",
    legend.title = element_blank(),
    legend.text = element_text(size = 10, family = "Montserrat",colour = "black"),
    panel.grid.minor.y=element_blank(),
    panel.grid.major.y=element_blank(),
    panel.grid.minor.x=element_blank(),
    panel.grid.major.x=element_line(color = "lightgrey",linewidth = 0.5,linetype = "dotted"),
    strip.text.y = element_blank(),
    axis.text = element_text(size = 10, family = "Montserrat",colour = "black"),
    axis.title = element_text(size = 10, family = "Montserrat",colour = "black")
  ) +
  xlab("")  +
  ylab("") +
  scale_x_discrete(expand = c( 0.45, 0)) 
p



# VF
p_grp <- grid.arrange(titre3,p,ncol = 2, 
                      widths = c(unit(15, "npc"), unit(85, "npc")))

svg("images/Fig7_4/p7_4_save.svg", width = width, height = 2.7)
p_grp <- grid.arrange(titre3,p,ncol = 2, 
                      widths = c(unit(15, "npc"), unit(85, "npc")))
dev.off()

Graphiques

Figure 7.5

Sentiment amoureux selon le genre et la relation

  • largeur : 139mm
  • hauteur : 69mm

Données et codes

Code
dt <- read.xlsx("Data/Chapitre_7_V2_tableaux_AM.xlsx", 
                sheet = 4,
                cols = 1:6,
                rows = 7:15) %>% 
  fill(X1) %>% 
  rename(Relation = X1,
         Genre = X2) %>% 
  pivot_longer(3:6, names_to = "Amour", values_to = "Valeurs") %>%
  mutate(Amour = fct_recode(Amour,
                            "Pas du tout amoureux/amoureuse" = "Pas.du.tout.amoureux/amouruese",
                            "Pas vraiment amoureux/amoureuse" = "Pas.vraiment.amoureux/amoureuse",
                            "Plutôt amoureux/amoureuse" = "Plutôt.amoureux/amoureuse",
                            "Très amoureux/amoureuse" = "Très.amoureux/amoureuse"
  )) %>% 
  select(Relation, Genre, everything()) %>% 
  mutate(Genre = factor(Genre, levels = c("Hommes", "Femmes")),
         Relation = factor(Relation, levels = rev(c("Relations envisagées",
                                                    "Relations suivies",
                                                    "Histoires d'un soir",
                                                    "Couples")))) %>%
  mutate(value0 = NA,
         value1 = paste0(round(Valeurs,0),"%"),
         value1b = ifelse(Valeurs < 6, NA, value1),
         value2 = ifelse(Amour == "Très amoureux/amoureuse", value1, NA),
         value2b = ifelse(Amour == "Plutôt amoureux/amoureuse", value1, NA),
         value3 = ifelse(Relation == "Couples" & Amour == "Très amoureux/amoureuse", value1,
                         ifelse(Relation != "Couples" & Amour == "Pas du tout amoureux/amoureuse", value1, NA)),
         value4 = ifelse(Amour %in% c("Très amoureux/amoureuse","Pas du tout amoureux/amoureuse"), value1b, NA),
         value4b = ifelse(Amour %in% c("Plutôt amoureux/amoureuse","Pas vraiment amoureux/amoureuse"), value1b, NA),
  )

Télécharger les données pour la figure :

Code
rouge = "#ce1126"
width = 7.3 # = 139mm
height = 3 # = 48mm
size_text = 10

titre3 <- ggplot() +
  geom_blank() +
  ylim(0,10) +
  xlim(-1,1) +
  geom_text(aes(x = 0, y = 9.25 , label = "Couples"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  geom_text(aes(x = 0, y = 7, label = "Histoires\nd'un soir"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) + 
  geom_text(aes(x = 0, y = 4.8, label = "Relations\nsuivies"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) +  
  geom_text(aes(x = 0, y = 2.5, label = "Relations\ndésirées"), color = "white", 
            size = 4, angle = 0, hjust = 0.5, vjust = 0, family = "Montserrat", fontface = 2) + 
  theme_void() +
  theme(panel.background = element_rect(fill = rouge,
                                        colour = rouge,
                                        size = 0.5, linetype = "solid"))
titre3



p = ggplot(dt, aes(x = Genre, y = Valeurs)) +
  geom_bar_pattern(
    aes(fill = Amour,
        pattern_fill = Amour,
        pattern_angle = Amour
    ),
    stat = "identity", 
    colour = "black", 
    pattern_size = NA,
    #pattern_spacing = 0.03,
    pattern_density = 0.75, 
    width = 0.5,
    linewidth = 0.25
  ) +
  
  
  geom_text(
    aes(label = value3,
        color = Amour),
    size = 3,
    position = position_stack(vjust = 0.5), 
    family = "Montserrat"
  ) +
  
  
  facet_grid(Relation ~ ., scales = "free_y", space = "free_y") +
  coord_flip() +
  
  scale_color_manual(values = c("white","black","black","white")) +
  
  scale_pattern_angle_manual(values =c(0,45,135,0),
                             guide = guide_legend(reverse = TRUE))  +
  scale_fill_manual(values = rev(c(rouge,"white","white","black")),
                    guide = guide_legend(reverse = TRUE))  +
  scale_pattern_fill_manual(values = rev(c(rouge,rouge,"black","black")),
                            guide = guide_legend(reverse = TRUE))+
  
  scale_y_continuous(limits = c(0,100), breaks = seq(0,100,20),
                     labels = paste0(seq(0,100,20),"%")) + 
  
  theme_minimal() +
  theme(
    strip.text.y = element_blank(),
    axis.ticks.y = element_blank(),
    #axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    panel.grid.minor.y=element_blank(),
    panel.grid.major.y=element_blank(),
    panel.grid.minor.x=element_blank(),
    panel.grid.major.x=element_line(color = "lightgrey",linewidth = 0.5,linetype = "dotted"),
    legend.position = "bottom",
    axis.text = element_text(size = 10, family = "Montserrat"),
    legend.text = element_text(size = 10, family = "Montserrat"),
    legend.title=element_blank(),
    legend.key.size = unit(0.5, 'cm')
  ) +
  labs(x = "",y = "")  + 
  guides(
    pattern_angle = "none",
    color = "none",
    fill = "none",
    pattern_fill  = guide_legend(
      reverse = TRUE,
      nrow = 2, 
      override.aes = list(
        pattern_spacing = 0.01,
        pattern_density = 0.3,
        fill = c(rouge,rouge,"black","black"),
        pattern_fill = c(rouge,"white","white","black"),
        pattern_angle = rev(c(0,45,135,0))
      ))) 


p



# Rouge



p_rela3 <- grid.arrange(titre3,p,ncol = 2, 
                        widths = c(unit(15, "npc"), unit(85, "npc")))


svg("images/Fig7_5/p7_5_save.svg", width = width, height = 4)
p_rela3 <- grid.arrange(titre3,p,ncol = 2, 
                        widths = c(unit(15, "npc"), unit(85, "npc")))
dev.off()

Graphiques

Figure 7.6

tables des expériences relationnelles (12mois)

  • largeur : 136mm
  • hauteur : 125mm

Tables

Option 1

Figure 7.7

Graphique des combinaisons relationnelles

  • largeur : 140mm
  • hauteur : 140mm

Données et codes

Code
dt <- read.xlsx("Data/Chapitre_7_V2_tableaux_AM.xlsx", 
                sheet = 9,
                cols = 1:2,
                rows = 1:9) %>%
  arrange(desc(Pct)) %>%
  mutate(ymax = cumsum(Pct),
         ymin = lag(ymax, default = 0)) %>%
  mutate(xmax = cumsum(Pct),
         xmin = lag(xmax, default = 0))

Télécharger les données pour la figure :

Code
named_vector <- setNames(dt$Pct, dt$Relation)
vd <- venneuler(named_vector, diameters = 0.8)
vd$labels<- c("","","","","","") 

palette <- c("black","white","#eb5e5e",NA,"#821515")
bordure <- c("white","#cf5555",NA,"black",NA)

plot(vd, 
     col = palette,                                    # Choix couleurs
     alpha = c(1, 0.4, 0.4, 0.8,0.5),                  # Transparences
     border = bordure,                                 # Couleurs des bordures
     lwd = c(14,5,2,3,3),                              # Epaisseur des bords  
     lty = c(1,1,1,3,1)                                # Types de bordures
)

Graphiques

J’ai enlevé les relations désirée, mais on peut donc représenter le graphique par un Venn : plus clair ?

Figure 7.8

Configurations relationnelles (12mois)

  • largeur : 138mm
  • hauteur : 76mm

Tables

Option 1

Zoom : biographie